```asm
080483f4 <f>:
#include "stdio.h"

int f(int n) {
 80483f4:	55                   	push   %ebp
 80483f5:	89 e5                	mov    %esp,%ebp
 80483f7:	53                   	push   %ebx
 80483f8:	83 ec 14             	sub    $0x14,%esp
	if (n <= 0) return 0;
 80483fb:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
 80483ff:	7f 07                	jg     8048408 <f+0x14>
 8048401:	b8 00 00 00 00       	mov    $0x0,%eax
 8048406:	eb 33                	jmp    804843b <f+0x47>
	if (n == 1 || n == 2) return 1;
 8048408:	83 7d 08 01          	cmpl   $0x1,0x8(%ebp)
 804840c:	74 06                	je     8048414 <f+0x20>
 804840e:	83 7d 08 02          	cmpl   $0x2,0x8(%ebp)
 8048412:	75 07                	jne    804841b <f+0x27>
 8048414:	b8 01 00 00 00       	mov    $0x1,%eax
 8048419:	eb 20                	jmp    804843b <f+0x47>
	return f(n - 1) + f(n - 2);
 804841b:	8b 45 08             	mov    0x8(%ebp),%eax
 804841e:	83 e8 01             	sub    $0x1,%eax
 8048421:	89 04 24             	mov    %eax,(%esp)
 8048424:	e8 cb ff ff ff       	call   80483f4 <f>
 8048429:	89 c3                	mov    %eax,%ebx
 804842b:	8b 45 08             	mov    0x8(%ebp),%eax
 804842e:	83 e8 02             	sub    $0x2,%eax
 8048431:	89 04 24             	mov    %eax,(%esp)
 8048434:	e8 bb ff ff ff       	call   80483f4 <f>
 8048439:	01 d8                	add    %ebx,%eax
}
 804843b:	83 c4 14             	add    $0x14,%esp
 804843e:	5b                   	pop    %ebx
 804843f:	5d                   	pop    %ebp
 8048440:	c3                   	ret

08048441 <main>:

int main() {
 8048441:	55                   	push   %ebp
 8048442:	89 e5                	mov    %esp,%ebp
 8048444:	83 e4 f0             	and    $0xfffffff0,%esp
 8048447:	83 ec 20             	sub    $0x20,%esp
	int i = f(5);
 804844a:	c7 04 24 05 00 00 00 	movl   $0x5,(%esp)
 8048451:	e8 9e ff ff ff       	call   80483f4 <f>
 8048456:	89 44 24 1c          	mov    %eax,0x1c(%esp)
	printf("%d\n",i);
 804845a:	b8 50 85 04 08       	mov    $0x8048550,%eax
 804845f:	8b 54 24 1c          	mov    0x1c(%esp),%edx
 8048463:	89 54 24 04          	mov    %edx,0x4(%esp)
 8048467:	89 04 24             	mov    %eax,(%esp)
 804846a:	e8 91 fe ff ff       	call   8048300 <printf@plt>
	return 0;
 804846f:	b8 00 00 00 00       	mov    $0x0,%eax
}
 8048474:	c9                   	leave
 8048475:	c3                   	ret
 8048476:	90                   	nop
```

```asm
080483f4 <f>:
 80483f4:	55                   	push   %ebp
 80483f5:	89 e5                	mov    %esp,%ebp
 80483f7:	53                   	push   %ebx
 80483f8:	83 ec 14             	sub    $0x14,%esp
 80483fb:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
 80483ff:	7f 07                	jg     8048408 <f+0x14>
 8048401:	b8 00 00 00 00       	mov    $0x0,%eax
 8048406:	eb 33                	jmp    804843b <f+0x47>
 8048408:	83 7d 08 01          	cmpl   $0x1,0x8(%ebp)
 804840c:	74 06                	je     8048414 <f+0x20>
 804840e:	83 7d 08 02          	cmpl   $0x2,0x8(%ebp)
 8048412:	75 07                	jne    804841b <f+0x27>
 8048414:	b8 01 00 00 00       	mov    $0x1,%eax
 8048419:	eb 20                	jmp    804843b <f+0x47>
 804841b:	8b 45 08             	mov    0x8(%ebp),%eax
 804841e:	83 e8 01             	sub    $0x1,%eax
 8048421:	89 04 24             	mov    %eax,(%esp)
 8048424:	e8 cb ff ff ff       	call   80483f4 <f>
 8048429:	89 c3                	mov    %eax,%ebx
 804842b:	8b 45 08             	mov    0x8(%ebp),%eax
 804842e:	83 e8 02             	sub    $0x2,%eax
 8048431:	89 04 24             	mov    %eax,(%esp)
 8048434:	e8 bb ff ff ff       	call   80483f4 <f>
 8048439:	01 d8                	add    %ebx,%eax
 804843b:	83 c4 14             	add    $0x14,%esp
 804843e:	5b                   	pop    %ebx
 804843f:	5d                   	pop    %ebp
 8048440:	c3                   	ret

 8048441:	55                   	push   %ebp
 8048442:	89 e5                	mov    %esp,%ebp
 8048444:	83 e4 f0             	and    $0xfffffff0,%esp
 8048447:	83 ec 20             	sub    $0x20,%esp
 804844a:	c7 04 24 05 00 00 00 	movl   $0x5,(%esp)
 8048451:	e8 9e ff ff ff       	call   80483f4 <f>
 8048456:	89 44 24 1c          	mov    %eax,0x1c(%esp)
 804845a:	b8 50 85 04 08       	mov    $0x8048550,%eax
 804845f:	8b 54 24 1c          	mov    0x1c(%esp),%edx
 8048463:	89 54 24 04          	mov    %edx,0x4(%esp)
 8048467:	89 04 24             	mov    %eax,(%esp)
 804846a:	e8 91 fe ff ff       	call   8048300 <printf@plt>
 804846f:	b8 00 00 00 00       	mov    $0x0,%eax
 8048474:	c9                   	leave
 8048475:	c3                   	ret
 8048476:	90                   	nop
 ```
